package JVM.第02篇_类的加载篇;

/**
 * ②③④验证、准备、解析3个部分统称为链接(Linking)
 *
 * 简言之，为类的静态变量分配内存，并将其初始化为默认值。
 * 在这个阶段，虚拟机就会为这个类分配相应的内存空间，并设置默认初始值。
 * Java虚拟机为各类型变量默认的初始值如表所示。
 *
 * 注意:
 * 1.这里不包含基本数据类型的字段用static final修饰的情况，
 *   因为final在编译的时候就会分配了，准备阶段会显式赋值。
 * 2.注意这里不会为实例变量分配初始化，实例变量是会随着对象一起分配到Java堆中。
 * 3.在这个阶段并不会像初始化阶段中那样会有初始化或者代码被执行。
 */
/**
 * 整数型    数组元素是整型: 0
 *      byte:  1字节   8bit
 *      short  2字节   16bit
 *      int    4字节   32bit
 *      long   8字节   64bit
 * 浮点型    数组元素是浮点型: 0.0
 * 规范浮点数的小数点左侧必须为1，所以在保存尾数时，
 * 可以省略小数点前面这个1，从而腾出一个二进制位来保存更多的尾数
 *      float  4字节   32bit   1位符号位  8位指数为   23位小数位（尾数）
 *          单精度类型,精度是8位有效数字，
 *          取值范围是10的-38次方到10的38次方，
 *          浮点数被表示为尾数乘以2的指数次方再带上符号
 *      double 8字节   64bit  1位符号位  11位指数为   52位小数位（尾数）
 *          双精度类型，精度是17位有效数字，
 *          取值范围是10的-308次方到10的308次方
 * 字符型  元素是char型: 0或'u0000'，而非'0'
 *      short  2字节   16bit
 * boolean	4（根据编译环境而定）	false
 *
 * 关于boolean占几个字节，众说纷纭，
 * 虽然boolean表现出非0即1的“位”特性，但是存储空间的基本计量单位是字节，不是位。
 * 所以boolean至少占1个字节。
 * JVM规范中，boolean变量当作int处理，也就是4字节；
 * 而boolean数组当做byte数组处理，即boolean类型的数组里面的每一个元素占1个字节。
 *
 *  reference (引用类型) 默认 null
 *
 */
public class A3_类的准备 {

}
